---
title: Vianmääritys
description: Tässä osiossa käsitellään, miten Ultracitea vianmäärätään.
---

Vaikka Ultracite pyrkii yksinkertaistamaan linttausta/muotoilua, asennuksen ja käytön yhteydessä saattaa ilmetä ongelmia tai kysymyksiä. Tässä on joitain yleisiä ongelmia ja niiden ratkaisuja:

## “Ultracite isn’t formatting on save in VS Code.”

Tarkista, että sinulla on Biome VS Code -laajennus asennettuna ja käytössä. Varmista, että tiedostossasi `.vscode/settings.json` on `"editor.defaultFormatter": "biomejs.biome"` ja `"editor.codeActionsOnSave"` -merkinnät kuten [Asennus](/setup) -sivulla. 

Varmista myös, ettei rinnakkainen muotoilija- tai linter-laajennus ole käytössä (esimerkiksi jos sinulla on edelleen Prettier- tai ESLint-laajennus aktiivisena, ne saattavat häiritä tai mennä etusijalle).

Saatat joutua poistamaan VS Coden sisäänrakennetun Format On Save -toiminnon käytöstä, jos jokin toinen muotoilija nappaa tiedoston. Oikeilla asetuksilla ja Biome-laajennuksella tiedoston tallentaminen, jonka Ultracite kattaa (js/ts/jsx/tsx/json/css), pitäisi laukaista muotoilu. Jos näin ei tapahdu, kokeile ajaa komentoa “Format Document” manuaalisesti ja katso, käyttääkö se Biomea tai ilmeneekö virheilmoitusta.

## “I installed Ultracite, but VS Code still uses ESLint or Prettier.”

Varmista, että olet poistanut tai poistanut käytöstä vanhat konfiguraatiosi. Esimerkiksi, jos projektissasi on `.eslintrc` tai `.prettierrc`, VS Coden ESLint-laajennus voi edelleen olla aktiivinen ja aiheuttaa päällekkäisiä ilmoituksia.

Suositeltavaa on poistaa nuo konfigit (tai ainakin poistaa laajennukset käytöstä) vaihtaessasi Ultraciteen sekaannuksen välttämiseksi. Käytännössä anna Ultraciten/Biomen ottaa vastuu ainoana linterinä/muotoilijana.

Jos haluat säilyttää ESLintin jostain syystä, älä ota ESLintin “fix on save” -toimintoa käyttöön – muuten molemmat saattavat yrittää korjata koodia (vaikka oikein konfiguroituna Biome pitäisi olla yhteensopiva Prettierin tyylin kanssa ristiriitojen välttämiseksi).

Yleisesti ottaen, jos migraoit täysin Ultraciteen, et tarvitse enää ESLint/Prettier-konfiguraatioita.

## “Ultracite (Biome) is throwing parse errors for files I don’t want it to check.”

Hyvä esimerkki tästä on komponenttien asentaminen käyttöliittymäkirjastosta kuten [`shadcn/ui`](https://ui.shadcn.com/). Vaikka niitä on tarkoitettu muokattaviksi, saatat haluta säilyttää alkuperäisen lähdekoodin päivityksiä varten. Tällöin haluat poistaa noiden tiedostojen linttauksen käytöstä.

Tätä varten lisää `biome.jsonc`-tiedostoosi poissulkevat kuvioerottelut, esim.

```json title="biome.jsonc"
{
  "files": {
    "includes": [
      "**/*",
      "!components/ui",
      "!lib",
      "!hooks",
    ]
  },
}
```

Oletuksena Biomen pitäisi ohittaa `node_modules`, mutta jos avasit tiedoston manuaalisesti sieltä, laajennus saattaa silti yrittää lintata sitä. Yleisesti ottaen jätä raskaasti generoitu tiedosto tai kolmannen osapuolen koodi linttauksen ulkopuolelle – niitä ei tarvitse tarkistaa.

Toinen syy voi olla, että tiedostossa on kokeellista syntaksia, jota Biome ei pysty jäsentämään (esim. jonkin stage-3-ehdotuksen syntaksi, jota Biome ei vielä tue). Tällöin joko vältä kyseistä syntaksia tai katso, voiko Biomea konfiguroida (joskus lisäämällä `"parser.allowSomething": true` konfiguraatioon, jos vaihtoehto on saatavilla).

Tarkista Biomen issue-trackerista, onko kyseiselle syntaksille tuki.

## “I see double errors for the same issue.”

Tämä voi tapahtua, jos käytössäsi on useita lintereitä samaan aikaan (esimerkiksi sekä ESLint että Ultracite). Se voi myös ilmetä, jos VS Coden TypeScript-tarkistus ja Biome molemmat raportoivat saman TS-virheen. Ratkaise standardisoimalla yksi työkalu yhtä tarkistustyyppiä kohden.

Jos käytät Ultracitea, poista muut linterit käytöstä. TypeScript-tyyppivirheistä VS Coden sisäänrakennettu TS-palvelin näyttää ne (esim. punaiset aaltoilevat alleviivaukset tyyppiongelmille) – Biome voi myös näyttää tyyppiin perustuvia lint-virheitä. Yleensä tämä on ok, koska ne korostavat samaa ongelmaa. Jos se kuitenkin ärsyttää, voit kytkeä VS Coden TS-validatorin pois päältä (`"typescript.validate.enable": false` asetuksissa) ja luottaa Biomeen, tai päinvastoin.

Useimmissa kokoonpanoissa molempien jättäminen päälle on hyväksyttävää; ne täydentävät toisiaan (tyyppivirheet vs lint-virheet). Varmista vain, ettei sinulla ole kahta päällekkäistä lintteriä, joilla on sama toiminnallisuus (kuten ESLint ja Biome, jotka molemmat tekevät linttausta).

## “Pre-commit hook/CI is failing due to Ultracite.”

Jos pre-commit-hookisi ajaa `ultracite`-komennon ja se epäonnistuu, se tarkoittaa että siellä on vielä korjaamattomia ongelmia (tai joku ohitti sen ajamisen). Paras tapa korjata tämä on ajaa `npx ultracite` paikallisesti ja tarkastella tulostetta. Se joko korjaa asiat (jolloin voit lisätä muutokset stageen ja commitoida uudelleen) tai raportoi virheet, jotka vaativat manuaalista korjausta.

Korjaa nämä ongelmat ja tee commit uudelleen. Jos CI epäonnistuu komennolla `ultracite --check`, tee sama: aja se paikallisesti `--check`-lipulla nähdäksesi mitä se löysi, tai aja ilman `--check`-lippua automaattista korjausta varten ja commitoi tulokset. Lyhyesti: kohtele Ultracite-epäonnistumisia kuin epäonnistuneita testejä – ne pitää korjata koodissa.

## “I get an error about `strictNullChecks` or type issues after enabling Ultracite.”

Ultracite olettaa TypeScriptin tiukkuutta. Jos et ole ottanut `strictNullChecks`-tai täyttä `strict`-tilaa käyttöön, saatat saada paljon TypeScriptiin liittyviä lint-varoituksia (esim. varoituksia mahdollisesta undefinedin käytöstä, joita TS ei huomaa löysillä asetuksilla).

Ratkaisu on ottaa nuo tiukkuusliput käyttöön `tsconfig`-tiedostossa suosituksen mukaisesti. Jos jostain syystä et voi (esim. legacy-syistä), saatat joutua poistamaan käytöstä joitakin Ultraciten sääntöjä, jotka olettavat tiukkuuden. Kuitenkin suosittelemme vahvasti siirtymistä TS strict -tilaan – se parantaa koodin laatua ja on linjassa Ultraciten periaatteiden kanssa.

## “Ultracite is too strict for our team (too many rules) – can I tone it down?”

Kyllä. Vaikka Ultraciten arvo perustuu tiukkuuteen, voit halutessasi ylikirjoittaa sääntöjä. Jos kehittäjät kokevat varoitukset ylivoimaisiksi, tunnista mitkä säännöt aiheuttavat kitkaa. Ehkä kyse on tyylivalinnasta tai jostain, joka ei ole relevanttia teidän kontekstissanne. Voit asettaa nuo säännöt arvoon `warn` tai `off` konfiguraatiossa.

Esimerkiksi jos saavutettavuussäännöt ovat liian meluisia sisäisessä työkalussa, voit poistaa osan niistä käytöstä. Tai jos olet eri mieltä tietyn koodityylin kanssa, voit mukauttaa sitä (vaikka tyyliriidat ovatkin se, mitä Ultracite pyrkii vähentämään).

Tärkeintä on tiimin välinen viestintä – ehkä selitä ensin, miksi sääntö on olemassa ennen kuin poistat sen; jos se on edelleen ei-toivottu, räätälöi konfiguraatiota. Ultracite ei ole musta laatikko – sinulla on täysi hallinta `biome.jsonc`-tiedoston kautta.

Tutustu [Konfigurointi](/configuration) -osioon lisätietoja varten, miten sääntöjä voi ylikirjoittaa.

## “Are there known limitations or bugs with Ultracite I should be aware of?”

Ultracite (erityisesti Biome) ei kata kaikkea, mitä yhdistelmä ESLint + Prettier + Stylelint kattaa, erityisesti jos käytät tiettyjä lisäosia. Esimerkiksi Stylelintillä oli laajat CSS-lint-säännöt; Biome tarjoaa nykyisin CSS:lle muotoilun ja peruslinnan, mutta ei koko Stylelintin sääntöjoukkoa.

Jos projektisi luottaa tiettyihin Stylelint-tarkistuksiin (kuten ominaisuuksien järjestykseen tai tiettyihin nimeämissääntöihin CSS:ssä), huomioi, ettei Ultracite näitä valvo. Voit tarvittaessa käyttää Stylelintiä erikseen tai odottaa, että Biome lisää laajempaa CSS-lint-tukea.

---

Jos kohtaat täällä käsitellyn tapauksen ulkopuolisen ongelman, harkitse Ultraciten GitHub-issues-sivun tai Biomen dokumentaation tarkistamista. Saattaa löytyä korjaus tai kiertotie. Yhteisö kasvaa jatkuvasti, joten tuki paranee ajan myötä.